package com.zhang.goods.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhang.goods.vo.AttrVo;
import com.zhang.common.util.result.R;
import com.zhang.goods.entity.Attribute;

import java.util.List;

/**
 * <p>
 * 商品属性表 服务类
 * </p>
 *
 * @author 创世神
 * @since 2023-09-12
 */
public interface IAttributeService extends IService<Attribute> {

    R addAttr(Attribute attribute);

    List<Attribute> getAttrByAttrgroupId(Long attrGroupId);

    /**
     * 通过分类id获取没有关联的属性
     *
     * @param categoryId
     * @return {@link List}<{@link Attribute}>
     */
    List<Attribute> getAttrByCategoryIdAdnNoAsso(Long categoryId);

    /**
     * @param categoryId 分类id
     * @param attrType   属性类型（0销售属性，1：规格参数）
     * @return {@link List}<{@link AttrVo}>
     */
    List<AttrVo> getAttrByCategoryId(Long categoryId, Integer attrType);


    /**
     * 筛选出可以被检索的attr
     * @param attrIds
     * @return {@link List}<{@link Long}>
     */
    List<Long> selectSearchAttrIds(List<Long> attrIds);

    /**获取销售属性通过分类id
     * @param categoryId
     * @return {@link List}<{@link Attribute}>
     */
    List<Attribute> listSaleAttrByCategoryId(Long categoryId);
}
